Um programa pode chamar outro programa como uma subrotina. A subrotina pode ser externa (um programa independente) ou interna (incluída no programa principal). As subrotinas são úteis quando um programa necessitar de repetir o mesmo grupo de comandos em vários locais diferentes.
Para chamar um programa independente, utilize a mesma sintaxe que utiliza para executar o programa a partir da linha de entrada.
Para definir uma subrotina interna, utilize o comando Define com Prgm...EndPrgm. Como uma subrotina tem de ser definida antes de poder ser chamada, é uma boa prática definir as subrotinas no início do programa principal.
Uma subrotina interna é chamada e executada da mesma forma que um programa independente.
|
Define subtest1()= Prgm local subtest2 À Define subtest2(x,y)= Á Prgm Disp x,y EndPrgm ©Início do programa principal For i,1,4,1 subtest2(i,I*1000) Â EndFor EndPrgm |
|
À |
Declara a subrotina como uma variável local. |
|
Á |
Define a subrotina. |
|
 |
Chama a subrotina. |
Nota: Utilize o menu Var do Editor de programas para introduzir os comandos Define e Prgm...EndPrgm.
No fim de uma subrotina, a execução volta ao programa de chamada. Para sair de uma subrotina a qualquer momento, utilize Return sem argumento.
Uma subrotina não pode aceder às variáveis locais declaradas no programa de chamada. Do mesmo modo, o programa de chamada não pode aceder às variáveis locais declaradas numa subrotina.
Os comandos Lbl são locais nos programas em que estão localizados. Por exemplo, um comando Goto no programa de chamada não pode ramificar-se para uma etiqueta numa subrotina ou vice-versa.
Quando avaliar uma função definida pelo utilizador ou executar um programa, pode especificar um argumento que inclua a mesma variável que utilizou para definir a função ou criar o programa. No entanto, para evitar erros de definições circulares, tem de atribuir um valor às variáveis utilizadas na avaliação da função ou na execução do programa. Por exemplo:
|
x+1&x À |
– —ou— –
|
For i,i,10,1 Disp i À EndFor |
|
À |
Resulta numa mensagem de erro de Definição circular se x ou i não tiver um valor. O erro não ocorre se já tiver atribuído um valor a x ou a i. |